package controlador;

import java.io.IOException;
import java.util.Date;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import modelo.Estudiante;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Datebox;
import org.zkoss.zul.Intbox;
import org.zkoss.zul.Messagebox;
import org.zkoss.zul.Radio;
import org.zkoss.zul.Radiogroup;
import org.zkoss.zul.Spinner;
import org.zkoss.zul.Textbox;

import configuracion.GeneradorBeans;

import servicio.ServicioEstudiante;

@Controller
public class ControladorEstudiante extends SelectorComposer<Component> {
ServicioEstudiante serv = GeneradorBeans.getServicioEstudiante();
@Wire
private Textbox txtcedula;
@Wire
private Textbox txtnombre;
@Wire
private Textbox txtapellido;
@Wire
private Spinner spedad;
@Wire
private Textbox txtdireccion;
@Wire
private Radiogroup rbtsexo;
@Wire
private  Radio rbtfemenino;
@Wire
private Radio rbtmasculino;
@Wire
private Datebox dfecha;
@Wire
private Combobox cmbcorreo;

@Listen("onClick = #btguardar")
public void guardar_estudiante() {
	
	if (txtcedula.getValue()!="" || txtnombre.getValue()!="" || txtapellido.getValue()!="" 
		|| txtdireccion.getValue()!="" || cmbcorreo.getValue()!="") {
		String cedula = txtcedula.getValue();
		String nombre = txtnombre.getValue();
		String apellido = txtapellido.getValue();
		int edad = spedad.getValue();
		String direccion = txtdireccion.getValue();
		String sexo = rbtsexo.getSelectedItem().getLabel();
		Date fecha_nacimiento = dfecha.getValue();
		String correo = cmbcorreo.getValue();
		char estatus='a';
		Estudiante estudiante = new Estudiante(cedula, nombre, apellido, edad, direccion, sexo, fecha_nacimiento, correo, estatus);
		serv.guardar(estudiante);
		limpiar();
	} else {
		Messagebox.show("Debe llenar todos los campos");
	}
	

}

@Listen("onClick = #bteliminar")
public void eliminar_estudiante() {
	
	String cedula = txtcedula.getValue();
	Estudiante estudiante = serv.buscar(cedula);
	estudiante.setEstatus('e');
	serv.guardar(estudiante);
	limpiar();
}

@Listen("onClick = #btbuscar")
public void buscar_estudiante() {
	
	String cedula = txtcedula.getValue();
	Estudiante estudiante = new Estudiante();	
	if(!cedula.equals("")){	
		estudiante = serv.buscar(cedula);
		if (estudiante!=null) {
			txtnombre.setValue(estudiante.getNombre());
			txtapellido.setValue(estudiante.getApellido());
			spedad.setValue(estudiante.getEdad());
			txtdireccion.setValue(estudiante.getDireccion());
			if (estudiante.getSexo().equals("Femenino")) {
				rbtfemenino.setChecked(true);
			} else {
				rbtmasculino.setChecked(true);
			}
			dfecha.setValue(estudiante.getFecha_nacimiento());
			cmbcorreo.setValue(estudiante.getCorreo());
		} else {
			Messagebox.show("El Estudiante no ha sido encontrado");
		}
		
	} else {
	    Messagebox.show("El Campo Cedula no puede estar vacio");
	}
}

@Listen("onClick = #btcancelar")
public void limpiar() {

txtcedula.setValue("");
txtnombre.setValue("");
txtapellido.setValue("");
spedad.setValue(null);
txtdireccion.setValue("");
rbtfemenino.setChecked(false);
rbtmasculino.setChecked(false);
dfecha.setValue(new Date());
cmbcorreo.setValue(null);

}
}
